Epicycloids

Move generator point G

Epi3

Epi4

Epi2

Epi1

A = (5.59, 4.25)
B = (3.67, 2.67)
c = Circle(A, B)
C = Point(c)
a = Segment(A, C)
G = Point(c)
b = Segment(A, G)
A'_1 = Mirror(A, C)
p = Segment(C, A'_1)
E = Midpoint(G, A'_1)
A' = Mirror(A, E)
d = Segment(G, A')
e = Segment(A', A'_1)
f = Segment(G, A'_1)
A'_2 = Mirror(A, f)
g = Segment(A'_2, A'_1)
F = Midpoint(A'_2, A'_1)
G_1 = Midpoint(F, A'_1)
H = Midpoint(G_1, A')
h = Segment(G_1, A')
i = OrthogonalLine(H, h)
I = Mirror(A'_1, i)
j = Segment(A', I)
l = Segment(A'_2, G)
A''_2 = Mirror(A', G_1)
A''_1 = Mirror(A', A'_1)
v = Vector(A', A''_2)
q = Segment(A''_2, A''_1)
s = OrthogonalLine(G_1, v)
D_1 = Mirror(A''_1, s)
m = Segment(A', D_1)
n = Segment(D_1, A''_2)
r = Segment(A', A''_1)
L = Intersect(c, a, 1)
J = Midpoint(n)
K = Midpoint(J, D_1)
t = Segment(K, A')
A'' = Mirror(A', K)
b_1 = Segment(K, A'')
c_1 = OrthogonalLine(K, b_1)
A''_3 = Mirror(A', D_1)
d_1 = Segment(A'', A''_3)
O = Mirror(A''_3, c_1)
e_1 = Segment(A', O)
g_1 = Segment(A''_3, D_1)
k_2 = Segment(O, A'')
M = Midpoint(k_2)
N = Midpoint(M, O)
A''_4 = Mirror(A', N)
A''_5 = Mirror(A', O)
a_1 = Segment(O, A''_5)
f_1 = Segment(A', A''_4)
h_1 = OrthogonalLine(N, f_1)
i_1 = Segment(A''_4, A''_5)
P = Mirror(A''_5, h_1)
j_1 = Segment(P, A')
k_1 = Segment(P, A''_4)
Q = Midpoint(j_1)
n_1 = Ray(A', P)
A''_6 = Mirror(A', P)
p_1 = Segment(P, A''_6)
O' = Mirror(O, j_1)
q_1 = Segment(A', O')
r_1 = LineBisector(O', A''_6)
O'' = Mirror(O', r_1)
A''_7 = Mirror(A', r_1)
s_1 = Segment(A''_7, O')
t_1 = Segment(A''_6, A''_7)
k = 0.5 (slider from 0.1 to 0.5, step 0.01)
O''_1 = Dilate(O', k, A')
loc1 = Locus(O''_1, G)
o = false
u = false
O'_1 = Dilate(O, k, A')
loc2 = Locus(O'_1, G)
w = false
P' = Dilate(P, k, A')
loc3 = Locus(P', G)
R = Dilate(D_1, k, A')
loc4 = Locus(R, G)
z = false